package config

import (
	"os"

	"github.com/joho/godotenv"
)

// AppConfig 应用配置
type appConfig struct {
	ServerPort string
	DBUsername string
	DBPassword string
	DBHost     string
	DBPort     string
	DBName     string
	TokenExpiryHours int // 令牌过期时间(小时)
}
// 全局配置变量
var AppConfig appConfig


// LoadConfig 加载配置文件
func LoadConfig() {
	// 加载 .env 文件
	godotenv.Load()

	// 读取环境变量
	AppConfig = appConfig{
		ServerPort: getEnv("PORT", "8080"),
		DBUsername: getEnv("DB_USERNAME", "root"),
		DBPassword: getEnv("DB_PASSWORD", "root1234"),
		DBHost:     getEnv("DB_HOST", "localhost"),
		DBPort:     getEnv("DB_PORT", "3306"),
		DBName:     getEnv("DB_NAME", "wolf"),
		TokenExpiryHours: getEnvInt("TOKEN_EXPIRY_HOURS", 24), // 默认24小时过期
	}
}

func getEnv(key,defaultValue string) string {
	value := os.Getenv(key)
	if value == "" {
		return defaultValue
	}
	return value
}

// getEnvInt 读取整数类型的环境变量
func getEnvInt(key string, defaultValue int) int {
	value := os.Getenv(key)
	if value == "" {
		return defaultValue
	}
	
	// 简单的字符串转整数
	result := 0
	for _, c := range value {
		if c >= '0' && c <= '9' {
			result = result*10 + int(c-'0')
		} else {
			return defaultValue
		}
	}
	return result
}